设置搜索区域(1.1.0+)
setSearchArea(搜索参数, 提交地址)
从V1.1.0版本开始,支持设置搜索区域,目前支持以下类型:
| 类型 | 标识符 |
|---|---|
| 单行文本框 | text |
| 下拉框 | select |
| 日期时间 | datetime |
用法如下:
->setSearchArea([['text', 'username', '昵称'],])
不管是哪种类型,前面五个参数的含义是相同的
第一个参数:类型
第二个参数:字段名
第三个参数:标签名
第四个参数:匹配方式(默认为“eq”,也可以是“neq”,“=”,“<>”等等)
第五个参数:默认值
第六个参数:额外参数(不同类型,用途不同)
text(单行文本框)
一般用法
->setSearchArea([['text', 'username', '昵称'],])
默认的匹配方式是“eq”,也就是等于,如果需要修改为不等于,可以明确指定
->setSearchArea([['text', 'username', '昵称', 'neq'],])
改为模糊匹配
->setSearchArea([['text', 'username', '昵称', 'like'],])
也可以设置默认值
->setSearchArea([['text', 'username', '昵称', '', 'ming'],])
需要注意的是,这里的默认值仅用于默认显示在单行文本框内,并不会默认按这个值搜索,需要自行在查询数据时带入默认值。
$map = $this->getMap();if (!isset($map['username'])) {$map['username'] = 'ming';}$data = User::where($map)->paginate();return ZBuilder::make('table')->addColumns([ // 批量添加列['id', 'ID'],['username', '用户名'],['nickname', '昵称'],['email', '邮箱'],['mobile', '手机号'],['create_time', '创建时间', 'datetime'],['status', '状态', 'switch'],['right_button', '操作', 'btn']])->setSearchArea([['text', 'username', '昵称', '', 'ming'],])->fetch();
默认每个组件的宽度是占1/4,也可以自己设置
->setSearchArea([['text:6', 'username', '昵称', 'neq'],])
如果数据是使用【视图查询】获得的,有时候需要指定表名
->setSearchArea([['text', 'admin_user.username', '昵称'],])
select(下拉框)
一般用法,第六个参数传入一个一维数组。
->setSearchArea([['select', 'username', '用户名', '', '', ['test' => 'test', 'ming' => 'ming']],])
设置默认值
->setSearchArea([['select', 'username', '用户名', '', 'test', ['test' => 'test', 'ming' => 'ming']],])
设置宽度
->setSearchArea([['select:4', 'username', '用户名', '', '', ['test' => 'test', 'ming' => 'ming']],])
指定表名
->setSearchArea([['select', 'admin_user.username', '用户名', '', '', ['test' => 'test', 'ming' => 'ming']],])
daterange(日期范围)
一般用法
->setSearchArea([['daterange', 'create_time', '创建时间'],])
修改匹配方式
默认匹配方式为在某个时间段内,也可以设置为不在某个时间段内
->setSearchArea([['daterange', 'create_time', '创建时间', 'not between'],])
设置默认值
->setSearchArea([['daterange', 'create_time', '创建时间', '', '2017-11-10 - 2017-11-15'],])
这里的默认值仅作为显示,默认查询数据时,需要自行添加默认值查询,具体请参考上的“text”类型用法。
设置时间格式
->setSearchArea([['daterange', 'create_time', '创建时间', '', '', ['format' => 'YYYY-MM-DD HH:mm']],])
更多格式请参考 momentjs
设置可选日期范围
->setSearchArea([['daterange', 'create_time', '创建时间', '', '', ['min-date' => '2017-11-01', 'max-date' => '2017-12-30']],])
表示用户只能在2017-11-01至2017-12-30之间选择。
开启时间选择
默认情况下,时间选择是没有开启的,如果需要开启时间选择,可以设置为
->setSearchArea([['daterange', 'create_time', '创建时间', '', '', ['time-picker' => 'true']],])
开启时间选择后,默认不是24小时制,如果需要设置为24小时制,设置为
->setSearchArea([['daterange', 'create_time', '创建时间', '', '', ['time-picker' => 'true', 'time-picker24-hour' => 'true']],])
如果需要精确到秒,可以设置为
->setSearchArea([['daterange', 'create_time', '创建时间', '', '', ['time-picker' => 'true', 'time-picker24-hour' => 'true', 'time-picker-seconds' => 'true']],])
更多参数请参考http://www.daterangepicker.com/#options
比如要设置参数“maxDate”,那么填写的时候要填写为“max-date”这种方式。
